package com.cskaoyan.javase.oop3._2inner._5anonymous._3exercise;

/**
 * 不修改main方法和接口Inter的前提下，补齐Outer类代码，要求在控制台输出HelloWorld
 *
 * @since 16:59
 * @author wuguidong@cskaoyan.onaliyun.com
 */

public class Test {
    public static void main(String[] args) {
        /*
            分析:
                method方法是Outer类的一个静态方法
                没有参数
                返回值是一个接口Inter的子类对象
         */
        Outer.method().show();
    }
}

interface Inter {
    void show();
}

// 最朴素的做法
class InterImpl implements Inter {
    @Override
    public void show() {
        System.out.println("hello world!");
    }
}

class Outer {
    public static Inter method() {
        // return new InterImpl();
        // 高端一点的做法,用局部内部类
        /*class InterImpl implements Inter {
            @Override
            public void show() {
                System.out.println("hello world!");
            }
        }
        return new InterImpl();*/

        // 用匿名内部类对象更加简洁
        return new Inter() {
            @Override
            public void show() {
                System.out.println("hello world!");
            }
        };
    }
}
